/*
 * @(#)XfvhdlProperties.java        3.0                       2004/09/14
 *
 * This file is part of Xfuzzy 3.0, a design environment for fuzzy logic
 * based systems.
 *
 * (c) 2000 IMSE-CNM. The authors may be contacted by the email address:
 *                    xfuzzy-team@imse.cnm.es
 *
 * Xfuzzy is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by
 * the Free Software Foundation.
 *
 * Xfuzzy is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

package xfuzzy.xfvhdl;

/**
* Clase que contiene todas las variables que se usan en la aplicaci�n.
* @author Jos� Mar�a �vila Maireles, <b>e-mail</b>: josavimai@alum.us.es
* @version 3.0
*/
public final class XfvhdlProperties {

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //		ATRIBUTOS P�BLICOS DE LA CLASE 				            
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

   //Valor por defecto
   final static public int DONT_CARE = 32767;

   // Valores por defecto de los parametros obtenidos de la linea de 
   // comandos.
   final static public String OUTPUT_FILE_DEFAULT = new String("FLC");
   final static public String OUTPUT_DIRECTORY_DEFAULT = new String("FLC");
   final static public String LIBRARY_DIRECTORY_DEFAULT =
      new String("../VHDLlib");
   final static public int N_DEFAULT = 5;
   final static public int grad_DEFAULT = 6;
   final static public int P_DEFAULT = 6;
   final static public int K_DEFAULT = 6;
   final static public boolean CALC_ARITHMETIC_DEFAULT = false;
   final static public boolean SIMULATION_DEFAULT = false;
   final static public boolean SYNTHESIS_DEFAULT = false;
   final static public boolean IMPLEMENTATION_DEFAULT = false;
   final static public String SYNTHESIS_TOOL_DEFAULT =
      new String("XILINX_XST");
   final static public String MAP_EFFORT_DEFAULT =
      new String("LOW_MAP_EFFORT");
   final static public boolean VERIFY_DEFAULT = false;
   final static public boolean BOUNDARY_OPTIMIZATION_DEFAULT = false;
   final static public boolean SYNOPSYS_REPORT_DEFAULT = false;
   final static public boolean AREA_OPTIMIZATION_DEFAULT = false;
   final static public boolean SPEED_OPTIMIZATION_DEFAULT = false;
   final static public String PART_TYPE_DEFAULT =
      new String("xc2s200e-pq208-6");
   final static public String TARGET_DEFAULT = new String("SPARTAN2E");
   final static public boolean COMPLEMENTARY_FILES_DEFAULT = false;
   final static public boolean CALCULATE_WEIGHTS_DEFAULT = false;
   final static public boolean INWINDOW_DEFAULT = false;
   final static public String MEMORY_TYPE_DEFAULT = new String("ROM");
   final static public boolean WITHNULL_DEFAULT = false;
   final static public boolean RULESMEMWITHROM_DEFAULT = false;

   // Valores por defecto para el conjunto de operadores
   final static public String OPERATIONAND_DEFAULT = new String("min");
   final static public String DEFUZZIFICATION_TYPE_DEFAULT =
      new String("FuzzyMean");

   // Datos para la generaci�n del reloj en el testbench
   final static public int PERIOD = 50; //tiempo en ns
   final static public int EDGE = 20; //tiempo en ns

   // Variables con los parametros obtenidos de la linea de comandos. 
   public static int N = N_DEFAULT;
   public static int grad = grad_DEFAULT;
   public static int P = P_DEFAULT;
   public static int K = K_DEFAULT;
   public static boolean calcArithmetic = CALC_ARITHMETIC_DEFAULT;
   public static boolean simulation = SIMULATION_DEFAULT;
   public static boolean synthesis = SYNTHESIS_DEFAULT;
   public static boolean implementation = IMPLEMENTATION_DEFAULT;
   public static String synthesisTool = new String(SYNTHESIS_TOOL_DEFAULT);
   public static String mapEffort = new String(MAP_EFFORT_DEFAULT);
   public static boolean verify = VERIFY_DEFAULT;
   public static boolean boundaryOptimization =
      BOUNDARY_OPTIMIZATION_DEFAULT;
   public static boolean synopsysReport = SYNOPSYS_REPORT_DEFAULT;
   public static boolean areaOptimization = AREA_OPTIMIZATION_DEFAULT;
   public static boolean speedOptimization = SPEED_OPTIMIZATION_DEFAULT;
   public static String partType = new String(PART_TYPE_DEFAULT);
   public static String target = new String(TARGET_DEFAULT);
   public static String outputDirectory =
      new String(OUTPUT_DIRECTORY_DEFAULT);
   public static String libraryDirectory =
      new String(LIBRARY_DIRECTORY_DEFAULT);
   public static String userDirectory = new String();
   public static String fileSeparator = new String();
   public static String outputFile = new String(OUTPUT_FILE_DEFAULT);
   public static boolean complementaryFiles = COMPLEMENTARY_FILES_DEFAULT;
   public static boolean calculateWeights = CALCULATE_WEIGHTS_DEFAULT;
   public static boolean inWindow = INWINDOW_DEFAULT;
   public static String memoryType = new String(MEMORY_TYPE_DEFAULT);
   public static boolean withNull = WITHNULL_DEFAULT;
   public static boolean rulesMemWithROM = RULESMEMWITHROM_DEFAULT;

   // Variables calculadas a partir del fichero XFL.
   public static String ficheroXFL = new String();
   public static String fileDir;
   public static int entradas;
   public static int n_fp;
   public static int bits_etiq;
   public static int dir_ant;
   public static int fil;
   public static int M;
   public static int dir_regl;
   public static int reglas;
   public static int w_reglas;
   public static int j_pipe;
   public static int w_pipe;
   public static int i1;
   public static int i2;
   public static int max_ciclos;
   public static int w_bus;
   public static int w_dir;
   public static int i_1;
   public static int i_2;
   public static int D;
   public static int DR;

   // Variables con los parametros obtenidos del fichero XFL.
   public static String operationAnd = OPERATIONAND_DEFAULT;
   public static String defuzzification_type =
      DEFUZZIFICATION_TYPE_DEFAULT;

} // Fin de la clase.
